H.J. Lu [Thu, 26 Dec 2024 08:12:36 +0000 (16:12 +0800)]
[PATCH] gas: Revert PR 32391 related commits to fix 3 regressions
From hjl.tools@gmail.com Thu Dec 26 08:12:36 2024
Message-ID: <20241226081236.495980-1-hjl.tools@gmail.com>
9f2e3c21f65 Fix the handling or arguments and macro pseudo-variables inside nested assembler macros.
introduced 3 regressions of PR gas/32484, PR gas/32486 and PR gas/32487.
Revert all PR 32391 related commits and add tests for PR gas/32484,
PR gas/32486, PR gas/32487.
PR gas/32484
PR gas/32486
PR gas/32487
* testsuite/gas/macros/macros.exp: Run nesting1, nesting2 and
nesting3.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Gbp-Pq: Name pr32391-revert.diff
Benjamin Drung [Tue, 17 Dec 2024 15:27:46 +0000 (15:27 +0000)]
[PATCH RESEND] gold: Support percent-encoded JSON in --package-metadata
From benjamin.drung@canonical.com Tue Dec 17 15:27:46 2024
Message-ID: <20241217152746.98360-1-benjamin.drung@canonical.com>
Specifying the compiler flag `-Wl,--package-metadata=<JSON>` will not
work in case the JSON contains a comma, because compiler drivers eat
commas. Example:
```
$ echo "void main() { }" > test.c
$ gcc -fuse-ld=gold '-Wl,--package-metadata={"type":"deb","os":"ubuntu"}' test.c
/usr/bin/ld.gold: error: cannot open "os":"ubuntu"}: No such file or directory
/usr/bin/ld.gold: fatal error: error: --package-metadata={"type":"deb" does not contain valid JSON: '}' expected near end of file
collect2: error: ld returned 1 exit status
```
The quotation marks in the JSON value do not work well with shell nor
make. Specifying the `--package-metadata` linker flag in a `LDFLAGS`
environment variable might loose its quotation marks when it hits the
final compiler call.
So support percent-encoded and %[string] encoded JSON data in the
`--package-metadata` linker flag. Percent-encoding is used because it is
a standard, simple to implement, and does take too many additional
characters. %[string] encoding is supported for having a more readable
encoding.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32003
Bug-Ubutru: https://bugs.launchpad.net/bugs/2071468 Signed-off-by: Benjamin Drung <benjamin.drung@canonical.com>
Gbp-Pq: Name gold-package-metadata.diff
Matthias Klose [Mon, 30 Dec 2024 11:18:11 +0000 (12:18 +0100)]
armhf-64k-alignment
The upstream binutils commit below reduced the section alignment of
armhf executables (including shared libraries) from 64k to 4k, on the
basis that the additional bloat is not justified, given that arm64 hosts
running 64k pagesize kernels with armhf user space are not used in
practice.
However, the situation is slightly different today on Debian, where a
16k pagesize kernel is provided that enables compat support, and is
therefore able to execute armhf user space. The only impediment is the
fact that armhf binaries are no longer compatible with this, due to the
change below.
To accommodate this use case, revert the patch. This makes the generated
executables compatible with compat mode on arm64 systems running 16k
kernels.
* New upstream snapshot, taken from the trunk.
* Revert the fix for PR gas/32391. Closes: #1090999, #1091488.
* Build with GCC 14.2.0-12 on ARM32. Closes: #1091281.